package com.mc.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonStandaloneConfig {

	@Value("${spring.redis.database}")
	private int db;

	@Value("${spring.redis.host}")
	private String host;

	@Value("${spring.redis.password}")
	private String pwd;

	@Value("${spring.redis.port}")
	private int port;

	@Bean(destroyMethod = "shutdown")
	@ConditionalOnMissingBean
	public RedissonClient redissonClient() {
		Config config = new Config();
		config.useSingleServer()
		      .setAddress("redis://" + host + ":" + port)
		      .setPassword(pwd)
		      .setDatabase(db)
			  .setClientName("did-");

		return Redisson.create(config);
	}

}
